According to the Association for Information and Image Management, Enterprise content management (ECM) refers to “the strategies, methods and tools used to capture, manage, store, preserve, and deliver content and documents related to organizational processes. ECM covers the management of information within the entire scope of an enterprise whether that information is in the form of a paper document, an electronic file, a database print stream, or even an email.” The organization and management of such enterprise resources is essential for current data intense business environments. An ECM system can make the management of enterprise resources easier through simplifying storage, security, version control, process routing, and retention. The benefits to an enterprise include improved efficiency, better control, and reduced costs.
An ECM system must provide continuous and secure access to the enterprise resources, and therefore is designed to receive and process requests from users and/or customers from all parts of the world and at all hours of the day. Typically, in order to handle the large number of requests efficiently, an ECM system utilizes a cluster of computer processing nodes, e.g., servers in a server farm, to process the requests in batches and/or in parallel. To optimize efficiency and performance, the ECM system uses a load balancing computer node that receives the requests and then assigns them to the computer processing nodes in the cluster in order to distribute the workload evenly throughout the cluster.
While straightforward in principle, evenly distributing the workload amongst the processing nodes is a difficult and challenging task. In one technique, the load balancing node assigns an equal number of requests to each of the processing nodes. This approach, however, is flawed because the requests are not identical to one another, and the processing cost and/or time can vary from request to request. In other words, an equal number of requests is not necessarily equivalent to an equal workload.
In another technique, the variation in the difficulty between requests is reflected by a difficulty ranking, e.g., a first type of request is ranked five stars (most difficult) and another type of request is ranked 1 star (least difficult). Using these rankings, the load balancing node can assign requests based on their respective difficulty rankings and therefore more evenly distribute the workload throughout the cluster. This technique, however, requires an administrator to evaluate each request and to assign the ranking, which might be feasible for a limited number of requests against a simple content management system. An ECM system, however, is far from simple. Indeed, a typical ECM system manages thousands, if not millions, of resources, and the requests received by an ECM system can involve an assortment of commands. Manually evaluating and ranking each request to an ECM system is not feasible.